home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 4 / Macwelt DVD 4.cdr / Entwickler / Mac-OS / oxygen / oxygen.app / Contents / Resources / Java / jh.jar / javax / help / JHelp.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-06-24  |  7.9 KB  |  328 lines

  1. package javax.help;
  2.  
  3. import java.net.URL;
  4. import java.util.Enumeration;
  5. import java.util.Vector;
  6. import javax.accessibility.Accessible;
  7. import javax.accessibility.AccessibleContext;
  8. import javax.help.Map.ID;
  9. import javax.help.event.HelpSetEvent;
  10. import javax.help.event.HelpSetListener;
  11. import javax.help.plaf.HelpUI;
  12. import javax.swing.JComponent;
  13. import javax.swing.UIManager;
  14.  
  15. public class JHelp extends JComponent implements HelpSetListener, Accessible {
  16.    protected TextHelpModel helpModel;
  17.    protected Vector navigators;
  18.    protected boolean navDisplayed;
  19.    protected JHelpContentViewer contentViewer;
  20.    private boolean debug;
  21.  
  22.    public JHelp(HelpSet var1) {
  23.       this((TextHelpModel)(new DefaultHelpModel(var1)));
  24.    }
  25.  
  26.    public JHelp() {
  27.       this((TextHelpModel)null);
  28.    }
  29.  
  30.    public JHelp(TextHelpModel var1) {
  31.       this.debug = false;
  32.       this.navigators = new Vector();
  33.       this.navDisplayed = true;
  34.       this.contentViewer = new JHelpContentViewer(var1);
  35.       this.setModel(var1);
  36.       if (var1 != null) {
  37.          this.setupNavigators();
  38.       }
  39.  
  40.       this.updateUI();
  41.    }
  42.  
  43.    protected void setupNavigators() {
  44.       HelpSet var1 = this.helpModel.getHelpSet();
  45.       if (var1 != null) {
  46.          NavigatorView[] var2 = var1.getNavigatorViews();
  47.          this.debug("views: " + var2);
  48.  
  49.          for(int var3 = 0; var3 < var2.length; ++var3) {
  50.             this.debug("  processing info: " + var2[var3]);
  51.             JHelpNavigator var4 = (JHelpNavigator)var2[var3].createNavigator(this.helpModel);
  52.             if (var4 == null) {
  53.                this.debug("no JHelpNavigator for given info");
  54.             } else {
  55.                this.debug("  adding the navigator");
  56.                this.navigators.addElement(var4);
  57.             }
  58.          }
  59.  
  60.          Enumeration var6 = var1.getHelpSets();
  61.  
  62.          while(var6.hasMoreElements()) {
  63.             HelpSet var5 = (HelpSet)var6.nextElement();
  64.             this.addHelpSet(var5);
  65.          }
  66.  
  67.       }
  68.    }
  69.  
  70.    public void setModel(TextHelpModel var1) {
  71.       TextHelpModel var2 = this.helpModel;
  72.       if (var1 != var2) {
  73.          if (var2 != null) {
  74.             var2.getHelpSet().removeHelpSetListener(this);
  75.          }
  76.  
  77.          this.helpModel = var1;
  78.          if (var1 != null) {
  79.             HelpSet var3 = var1.getHelpSet();
  80.             if (var3 != null) {
  81.                var3.addHelpSetListener(this);
  82.             }
  83.          }
  84.  
  85.          this.firePropertyChange("helpModel", var2, this.helpModel);
  86.          this.contentViewer.setModel(var1);
  87.          HelpUI var6 = this.getUI();
  88.          if (var6 == null) {
  89.             return;
  90.          }
  91.  
  92.          Enumeration var4 = this.getHelpNavigators();
  93.  
  94.          while(var4.hasMoreElements()) {
  95.             JHelpNavigator var5 = (JHelpNavigator)var4.nextElement();
  96.             var6.removeNavigator(var5);
  97.          }
  98.  
  99.          this.navigators.removeAllElements();
  100.          this.setupNavigators();
  101.          this.updateUI();
  102.       }
  103.  
  104.    }
  105.  
  106.    public TextHelpModel getModel() {
  107.       return this.helpModel;
  108.    }
  109.  
  110.    public void setHelpSetSpec(String var1) {
  111.       ClassLoader var4 = this.getClass().getClassLoader();
  112.  
  113.       HelpSet var3;
  114.       try {
  115.          URL var2 = new URL(var1);
  116.          var3 = new HelpSet(var4, var2);
  117.       } catch (Exception var6) {
  118.          System.err.println("Trouble setting HelpSetSpec to spec |" + var1 + "|");
  119.          System.err.println("  ex: " + var6);
  120.          var3 = null;
  121.       }
  122.  
  123.       this.contentViewer.setModel(new DefaultHelpModel(var3));
  124.       this.setModel(this.contentViewer.getModel());
  125.       this.updateUI();
  126.    }
  127.  
  128.    public URL getHelpSetURL() {
  129.       HelpSet var1 = this.contentViewer.getModel().getHelpSet();
  130.       return var1 == null ? null : var1.getHelpSetURL();
  131.    }
  132.  
  133.    public void setUI(HelpUI var1) {
  134.       if ((HelpUI)this.ui != var1) {
  135.          super.setUI(var1);
  136.       }
  137.  
  138.    }
  139.  
  140.    public HelpUI getUI() {
  141.       return (HelpUI)this.ui;
  142.    }
  143.  
  144.    public void updateUI() {
  145.       SwingHelpUtilities.installUIDefaults();
  146.       this.setUI((HelpUI)UIManager.getUI(this));
  147.       this.invalidate();
  148.    }
  149.  
  150.    public String getUIClassID() {
  151.       return "HelpUI";
  152.    }
  153.  
  154.    private JHelpNavigator findNavigator(String var1) {
  155.       this.debug("findNavigator(" + var1 + ")");
  156.       Enumeration var2 = this.getHelpNavigators();
  157.  
  158.       while(var2.hasMoreElements()) {
  159.          JHelpNavigator var3 = (JHelpNavigator)var2.nextElement();
  160.          this.debug("  nav: " + var3);
  161.          this.debug("  nav.getName: " + var3.getNavigatorName());
  162.          if (var3.getNavigatorName().equals(var1)) {
  163.             return var3;
  164.          }
  165.       }
  166.  
  167.       return null;
  168.    }
  169.  
  170.    public void helpSetAdded(HelpSetEvent var1) {
  171.       this.debug("helpSetAdded(" + var1 + ")");
  172.       HelpSet var2 = var1.getHelpSet();
  173.       this.addHelpSet(var2);
  174.    }
  175.  
  176.    private void addHelpSet(HelpSet var1) {
  177.       this.debug("helpset :" + var1);
  178.       NavigatorView[] var2 = var1.getNavigatorViews();
  179.       int var3 = 0;
  180.       Enumeration var4 = this.getHelpNavigators();
  181.  
  182.       while(var4.hasMoreElements()) {
  183.          ++var3;
  184.          var4.nextElement();
  185.       }
  186.  
  187.       if (var3 == 0) {
  188.          this.debug("master helpset without navigators");
  189.          DefaultHelpModel var8 = new DefaultHelpModel(var1);
  190.          this.setModel((TextHelpModel)var8);
  191.          this.setupNavigators();
  192.       } else {
  193.          for(int var5 = 0; var5 < var2.length; ++var5) {
  194.             String var6 = var2[var5].getName();
  195.             this.debug("addHelpSet: looking for navigator for " + var6);
  196.             JHelpNavigator var7 = this.findNavigator(var6);
  197.             if (var7 != null) {
  198.                this.debug("   found");
  199.                if (var7.canMerge(var2[var5])) {
  200.                   this.debug("  canMerge: true; merging...");
  201.                   var7.merge(var2[var5]);
  202.                } else {
  203.                   this.debug("  canMerge: false");
  204.                }
  205.             } else {
  206.                this.debug("   not found");
  207.             }
  208.          }
  209.  
  210.       }
  211.    }
  212.  
  213.    public void helpSetRemoved(HelpSetEvent var1) {
  214.       this.debug("helpSetRemoved(" + var1 + ")");
  215.       HelpSet var2 = var1.getHelpSet();
  216.       this.removeHelpSet(var2);
  217.    }
  218.  
  219.    private void removeHelpSet(HelpSet var1) {
  220.       NavigatorView[] var2 = var1.getNavigatorViews();
  221.  
  222.       for(int var3 = 0; var3 < var2.length; ++var3) {
  223.          String var4 = var2[var3].getName();
  224.          this.debug("removeHelpSet: looking for navigator for " + var4);
  225.          JHelpNavigator var5 = this.findNavigator(var4);
  226.          if (var5 != null) {
  227.             this.debug("   found");
  228.             if (var5.canMerge(var2[var3])) {
  229.                this.debug("  canMerge: true; removing...");
  230.                var5.remove(var2[var3]);
  231.             } else {
  232.                this.debug("  canMerge: false");
  233.             }
  234.          } else {
  235.             this.debug("   not found");
  236.          }
  237.       }
  238.  
  239.    }
  240.  
  241.    public void setCurrentID(Map.ID var1) throws InvalidHelpSetContextException {
  242.       if (this.helpModel != null) {
  243.          this.helpModel.setCurrentID(var1);
  244.       }
  245.  
  246.    }
  247.  
  248.    public void setCurrentID(String var1) throws BadIDException {
  249.       try {
  250.          this.helpModel.setCurrentID(ID.create(var1, this.getModel().getHelpSet()));
  251.       } catch (InvalidHelpSetContextException var3) {
  252.       }
  253.  
  254.    }
  255.  
  256.    public void setCurrentURL(URL var1) {
  257.       this.helpModel.setCurrentURL(var1);
  258.    }
  259.  
  260.    public void addHelpNavigator(JHelpNavigator var1) {
  261.       this.debug("addHelpNavigator(" + var1 + ")");
  262.       this.navigators.addElement(var1);
  263.       HelpUI var2 = this.getUI();
  264.       var2.addNavigator(var1);
  265.       var1.setModel(this.getModel());
  266.    }
  267.  
  268.    public void removeHelpNavigator(JHelpNavigator var1) {
  269.       this.debug("removeHelpNavigator(" + var1 + ")");
  270.       if (var1 == null) {
  271.          throw new NullPointerException("navigator");
  272.       } else {
  273.          this.navigators.removeElement(var1);
  274.          HelpUI var2 = this.getUI();
  275.          var2.removeNavigator(var1);
  276.       }
  277.    }
  278.  
  279.    public Enumeration getHelpNavigators() {
  280.       return this.navigators.elements();
  281.    }
  282.  
  283.    public void setCurrentNavigator(JHelpNavigator var1) {
  284.       HelpUI var2 = this.getUI();
  285.       var2.setCurrentNavigator(var1);
  286.    }
  287.  
  288.    public JHelpNavigator getCurrentNavigator() {
  289.       HelpUI var1 = this.getUI();
  290.       return var1.getCurrentNavigator();
  291.    }
  292.  
  293.    public void setNavigatorDisplayed(boolean var1) {
  294.       if (this.navDisplayed != var1) {
  295.          this.navDisplayed = var1;
  296.          this.firePropertyChange("navigatorDisplayed", !var1, var1);
  297.       }
  298.  
  299.    }
  300.  
  301.    public boolean isNavigatorDisplayed() {
  302.       return this.navDisplayed;
  303.    }
  304.  
  305.    public JHelpContentViewer getContentViewer() {
  306.       return this.contentViewer;
  307.    }
  308.  
  309.    private void debug(String var1) {
  310.       if (this.debug) {
  311.          System.err.println("JHelp: " + var1);
  312.       }
  313.  
  314.    }
  315.  
  316.    public AccessibleContext getAccessibleContext() {
  317.       if (this.accessibleContext == null) {
  318.          this.accessibleContext = new AccessibleJHelp(this);
  319.       }
  320.  
  321.       return this.accessibleContext;
  322.    }
  323.  
  324.    static {
  325.       SwingHelpUtilities.installLookAndFeelDefaults();
  326.    }
  327. }
  328.